﻿Imports WSEntidades
Imports Utilerias
Imports WSDatos
Imports System.Transactions
Imports WSPremium

Public Class PremiumBL

    Public Function ValidaTxt(ByVal Txt As String, ByRef Resp As List(Of RespuestaPremium), _
                              ByRef DetResp As DetalleRespuesta, ByVal RutaLayout As String) As Boolean
        DetResp.Mensajes = ""
        Dim facturadorBE As WSFacturadorService.FacturadorBE
        If (EsValidoParaVerificar(Txt, DetResp.Mensajes)) Then
            Try
                If (ValidaCFDi.ValidaTxt(Txt, Resp, facturadorBE, RutaLayout)) Then
                    Return True
                Else
                    Return False
                End If
            Catch ex As Exception
                Log.LogException(ex, "PremiumBL.ValidaTxt")
                DetResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                         DetResp.Mensajes & "Excepción al validar Txt: " & ex.Message)
                Return False
            Finally
            End Try
        Else
            DetResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ValoresInvalidos,
                                     "El Txt no es valida para verificar: " & vbCrLf & DetResp.Mensajes)
            Return False
        End If
    End Function

    Private Function EsValidoParaVerificar(ByRef pTxt As String, ByRef mensaje As String) As Boolean
        mensaje = ""
        Try
            If (String.IsNullOrWhiteSpace(pTxt)) Then
                mensaje &= "Debe indicar contenido de Txt, no puede ir vacio." & vbCrLf
            End If

            Return (mensaje = "")
        Catch ex As Exception
            Log.LogException(ex, "PremiumBL.EsValidoParaVerificar")
            mensaje &= ex.Message
            Return False
        End Try
    End Function
    
End Class
